'PrintMessage and PrintWrap code: 'Copyright 1993 by Ivory Tower Software 'CIS 76427,2611 (Richard Wagner) 'Provided as a public service by Ivory Tower Software. 'Any implementation must contain this notice. Sub PrintMessage (sMsg As String) 'Add a trailing carriage return: sMsg = sMsg + Chr$(13) 'Break message into segments divided by carriage returns: For i% = 1 To Len(sMsg) CurChar$ = Mid$(sMsg, i%, 1) If CurChar$ = Chr$(13) Then If Len(Temp$) > 80 Then PrintWrap Temp$ Else Printer.Print Temp$ End If Temp$ = "" Else If CurChar$ <> Chr$(10) Then Temp$ = Temp$ + CurChar$ End If End If Next i% End Sub Sub PrintWrap (sMsg As String) On Error GoTo PrintWrapHandler CurPos% = 1 Segment$ = Space$(72) Do While Len(Segment$) = 72 Segment$ = Mid$(sMsg, CurPos%, 72) If Len(Segment$) < 72 Then Printer.Print LTrim$(Segment$) Exit Do End If n% = 0 CurChar$ = "" Do While CurChar$ <> " " CurChar$ = Mid$(Segment$, Len(Segment$) - n%, 1) n% = n% + 1 np% = DoEvents() Loop PrinSeg$ = Mid$(sMsg, CurPos%, (72 - n%)) Printer.Print LTrim$(PrinSeg$) CurPos% = CurPos% + (72 - n%) np% = DoEvents() Loop Exit Sub PrintWrapHandler: Resume Next End Sub